home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / ODF Release 3 / ODFDev / Draw / Sources / DrawCont.h < prev    next >
Encoding:
Text File  |  1996-12-16  |  6.2 KB  |  216 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                DrawCont.h
  4. //    Release Version:    $ ODF 3 $
  5. //
  6. //    Author:                Mary Boetcher
  7. //
  8. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  9. //
  10. //========================================================================================
  11.  
  12. #ifndef DRAWCONT_H
  13. #define DRAWCONT_H
  14.  
  15. #ifndef CONTENT_H
  16. #include "Content.h"
  17. #endif
  18.  
  19. //========================================================================================
  20. //    Forward Declarations
  21. //========================================================================================
  22.  
  23. class CDrawPart;
  24. class CDrawSelection;
  25. class CDrawPromise;
  26. class CDrawSubscribeLink;
  27. class CGroupShape;
  28.  
  29. //========================================================================================
  30. //    class CDrawPartContent
  31. //========================================================================================
  32.  
  33. class CDrawPartContent : public CDrawContent
  34. {
  35. public:
  36.   
  37.       FW_DECLARE_AUTO(CDrawPartContent)
  38.   
  39.     CDrawPartContent(Environment* ev, CDrawPart* part);
  40.     virtual ~CDrawPartContent();
  41.  
  42.     virtual void        PostInternalizeShape(Environment* ev, 
  43.                                      const FW_CPoint& offset, 
  44.                                      CBaseShape* shape, 
  45.                                      short index);
  46.  
  47.     CBaseShape*            NewShape(Environment* ev, unsigned short shapeType);
  48.  
  49.     FW_Boolean            MoveForward();
  50.     FW_Boolean            MoveBackward();
  51.     void                MoveToFront();
  52.     void                MoveToBack();
  53.     void                ExtractSelection(CShapeCollection* extract);
  54.     virtual FW_CPromise* NewPromise(Environment* ev, 
  55.                             ODStorageUnit* su, 
  56.                             FW_StorageKinds storageKind, 
  57.                             FW_CCloneInfo* cloneInfo);
  58. };
  59.  
  60. //========================================================================================
  61. //    class CDrawSelectionContent
  62. //========================================================================================
  63.  
  64. class CDrawSelectionContent : public CDrawContent
  65. {
  66. public:
  67.   
  68.       FW_DECLARE_AUTO(CDrawSelectionContent)
  69.   
  70.     CDrawSelectionContent(Environment* ev, 
  71.                         CDrawPart* part, 
  72.                         CDrawSelection* selection);
  73.     virtual ~CDrawSelectionContent();
  74.  
  75.     virtual void         PostInternalizeShape(Environment* ev, 
  76.                                     const FW_CPoint& offset, 
  77.                                     CBaseShape* shape, 
  78.                                     short index);
  79.  
  80.     virtual void         IncorporateEmbeddedFrame(Environment* ev, 
  81.                                       FW_CEmbeddingFrame* scopeFrame,
  82.                                       ODFrame* embeddedFrame,
  83.                                       ODShape* suggestedShape,
  84.                                       ODTypeToken viewType);
  85.     virtual void         IncorporateEmbeddedPart(Environment* ev, 
  86.                                       FW_CEmbeddingFrame* scopeFrame,
  87.                                       ODPart* embeddedPart, 
  88.                                       ODShape* suggestedShape,
  89.                                       ODTypeToken viewType);
  90.  
  91.     virtual FW_CPromise* NewPromise(Environment* ev, 
  92.                                       ODStorageUnit* su, 
  93.                                       FW_StorageKinds storageKind, 
  94.                                       FW_CCloneInfo* cloneInfo);
  95.  
  96.     virtual ODShape*     AcquireSuggestedFrameShape(Environment* ev);
  97.  
  98.   private:
  99.     CDrawSelection*        fDrawSelection;
  100. };
  101.  
  102. //========================================================================================
  103. //    class CDrawUndoContent
  104. //========================================================================================
  105.  
  106. class CDrawUndoContent : public CDrawContent
  107. {
  108. public:
  109.   
  110.       FW_DECLARE_AUTO(CDrawUndoContent)
  111.   
  112.     CDrawUndoContent(Environment* ev, CDrawPart* part, CDrawSelection* selection);
  113.     virtual ~CDrawUndoContent();
  114.  
  115.     // ----- New API -----
  116.     void                 RemoveShapeSelection(Environment *ev);
  117.     void                 RestoreShapeSelection(Environment *ev);
  118.  
  119.     void                 RemoveFromLinks(Environment* ev);
  120.     void                 RestoreLinks(Environment* ev);
  121.     void                DeleteEmptyLinkSources(Environment* ev);
  122.     void                 DeleteSavedLinks(Environment* ev);
  123.     void                 CommitPasteDone(Environment* ev);
  124.  
  125.  
  126. private:
  127.     CDrawSelection*        fDrawSelection;
  128. };
  129.  
  130. //========================================================================================
  131. //    class CDrawPromiseContent
  132. //========================================================================================
  133.  
  134. class CDrawPromiseContent : public CDrawContent
  135. {
  136.   public:
  137.   
  138.       FW_DECLARE_AUTO(CDrawPromiseContent)
  139.   
  140.     CDrawPromiseContent(Environment* ev, 
  141.                                         CDrawPart* part, 
  142.                                         CDrawContent* content);
  143.     virtual ~CDrawPromiseContent();
  144.  
  145.     virtual FW_Boolean     IsOKtoWrite(Environment* ev, CBaseShape* shape);
  146.  
  147.     void                PromiseShape(Environment* ev, 
  148.                             FW_StorageKinds storageKind, 
  149.                             FW_Boolean state);
  150.  
  151.     FW_CRect            GetSelectedRect() const
  152.                             {return fSelectedRect;}
  153.   private:
  154.     CDrawPromise*    fPromise;
  155.     FW_CRect        fSelectedRect;
  156. };
  157.  
  158. //========================================================================================
  159. //    class CDrawLinkSourceContent
  160. //========================================================================================
  161.  
  162. class CDrawLinkSourceContent : public CDrawPromiseContent
  163. {
  164.   public:
  165.   
  166.       FW_DECLARE_AUTO(CDrawLinkSourceContent)
  167.   
  168.     CDrawLinkSourceContent(    Environment* ev, 
  169.                                                 CDrawPart* part, 
  170.                                                 CDrawContent* selectedContent,
  171.                                                 CDrawPublishLink* linkSrc);
  172.     virtual ~CDrawLinkSourceContent();
  173.  
  174.     
  175.     virtual FW_CPromise* NewPromise(Environment* ev,  ODStorageUnit* su, FW_StorageKinds storageKind,  FW_CCloneInfo* cloneInfo); //Override
  176.  
  177.   private:
  178.       
  179.     CDrawPublishLink* fLinkSource;
  180.       
  181. };
  182.  
  183. //========================================================================================
  184. //    class CDrawLinkContent
  185. //========================================================================================
  186.  
  187. class CDrawLinkContent : public CDrawContent
  188. {
  189.   public:
  190.   
  191.       FW_DECLARE_AUTO(CDrawLinkContent)
  192.   
  193.     CDrawLinkContent(Environment* ev, CDrawPart* part, CDrawSubscribeLink* link);
  194.     CDrawLinkContent(Environment* ev, CDrawSubscribeLink* link, CDrawPart* part, CDrawLinkContent* content);
  195.     virtual ~CDrawLinkContent();
  196.                                         
  197.     virtual void         IncorporateEmbeddedFrame(Environment* ev, 
  198.                                       FW_CEmbeddingFrame* scopeFrame,
  199.                                       ODFrame* embeddedFrame,
  200.                                       ODShape* suggestedShape,
  201.                                       ODTypeToken viewType);
  202.     virtual void         IncorporateEmbeddedPart(Environment* ev, 
  203.                                       FW_CEmbeddingFrame* scopeFrame,
  204.                                       ODPart* embeddedPart, 
  205.                                       ODShape* suggestedShape,
  206.                                       ODTypeToken viewType);
  207.  
  208.     void                GroupShapes(Environment* ev, CGroupShape* group);
  209.  
  210.   private:
  211.     CDrawSubscribeLink*    fLink;
  212. };
  213.  
  214.  
  215. #endif
  216.